package com.autohome.wz.business.order.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CouponCodeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CouponCodeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCodeNoIsNull() {
            addCriterion("code_no is null");
            return (Criteria) this;
        }

        public Criteria andCodeNoIsNotNull() {
            addCriterion("code_no is not null");
            return (Criteria) this;
        }

        public Criteria andCodeNoEqualTo(String value) {
            addCriterion("code_no =", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoNotEqualTo(String value) {
            addCriterion("code_no <>", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoGreaterThan(String value) {
            addCriterion("code_no >", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoGreaterThanOrEqualTo(String value) {
            addCriterion("code_no >=", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoLessThan(String value) {
            addCriterion("code_no <", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoLessThanOrEqualTo(String value) {
            addCriterion("code_no <=", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoLike(String value) {
            addCriterion("code_no like", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoNotLike(String value) {
            addCriterion("code_no not like", value, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoIn(List<String> values) {
            addCriterion("code_no in", values, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoNotIn(List<String> values) {
            addCriterion("code_no not in", values, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoBetween(String value1, String value2) {
            addCriterion("code_no between", value1, value2, "codeNo");
            return (Criteria) this;
        }

        public Criteria andCodeNoNotBetween(String value1, String value2) {
            addCriterion("code_no not between", value1, value2, "codeNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoIsNull() {
            addCriterion("batch_no is null");
            return (Criteria) this;
        }

        public Criteria andBatchNoIsNotNull() {
            addCriterion("batch_no is not null");
            return (Criteria) this;
        }

        public Criteria andBatchNoEqualTo(String value) {
            addCriterion("batch_no =", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoNotEqualTo(String value) {
            addCriterion("batch_no <>", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoGreaterThan(String value) {
            addCriterion("batch_no >", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoGreaterThanOrEqualTo(String value) {
            addCriterion("batch_no >=", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoLessThan(String value) {
            addCriterion("batch_no <", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoLessThanOrEqualTo(String value) {
            addCriterion("batch_no <=", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoLike(String value) {
            addCriterion("batch_no like", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoNotLike(String value) {
            addCriterion("batch_no not like", value, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoIn(List<String> values) {
            addCriterion("batch_no in", values, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoNotIn(List<String> values) {
            addCriterion("batch_no not in", values, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoBetween(String value1, String value2) {
            addCriterion("batch_no between", value1, value2, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoNotBetween(String value1, String value2) {
            addCriterion("batch_no not between", value1, value2, "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoIsNull() {
            addCriterion("batch_extend_no is null");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoIsNotNull() {
            addCriterion("batch_extend_no is not null");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoEqualTo(String value) {
            addCriterion("batch_extend_no =", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoNotEqualTo(String value) {
            addCriterion("batch_extend_no <>", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoGreaterThan(String value) {
            addCriterion("batch_extend_no >", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoGreaterThanOrEqualTo(String value) {
            addCriterion("batch_extend_no >=", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoLessThan(String value) {
            addCriterion("batch_extend_no <", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoLessThanOrEqualTo(String value) {
            addCriterion("batch_extend_no <=", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoLike(String value) {
            addCriterion("batch_extend_no like", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoNotLike(String value) {
            addCriterion("batch_extend_no not like", value, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoIn(List<String> values) {
            addCriterion("batch_extend_no in", values, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoNotIn(List<String> values) {
            addCriterion("batch_extend_no not in", values, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoBetween(String value1, String value2) {
            addCriterion("batch_extend_no between", value1, value2, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoNotBetween(String value1, String value2) {
            addCriterion("batch_extend_no not between", value1, value2, "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBindFlagIsNull() {
            addCriterion("bind_flag is null");
            return (Criteria) this;
        }

        public Criteria andBindFlagIsNotNull() {
            addCriterion("bind_flag is not null");
            return (Criteria) this;
        }

        public Criteria andBindFlagEqualTo(Integer value) {
            addCriterion("bind_flag =", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagNotEqualTo(Integer value) {
            addCriterion("bind_flag <>", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagGreaterThan(Integer value) {
            addCriterion("bind_flag >", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("bind_flag >=", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagLessThan(Integer value) {
            addCriterion("bind_flag <", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagLessThanOrEqualTo(Integer value) {
            addCriterion("bind_flag <=", value, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagIn(List<Integer> values) {
            addCriterion("bind_flag in", values, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagNotIn(List<Integer> values) {
            addCriterion("bind_flag not in", values, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagBetween(Integer value1, Integer value2) {
            addCriterion("bind_flag between", value1, value2, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("bind_flag not between", value1, value2, "bindFlag");
            return (Criteria) this;
        }

        public Criteria andBindPhoneIsNull() {
            addCriterion("bind_phone is null");
            return (Criteria) this;
        }

        public Criteria andBindPhoneIsNotNull() {
            addCriterion("bind_phone is not null");
            return (Criteria) this;
        }

        public Criteria andBindPhoneEqualTo(String value) {
            addCriterion("bind_phone =", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneNotEqualTo(String value) {
            addCriterion("bind_phone <>", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneGreaterThan(String value) {
            addCriterion("bind_phone >", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneGreaterThanOrEqualTo(String value) {
            addCriterion("bind_phone >=", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneLessThan(String value) {
            addCriterion("bind_phone <", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneLessThanOrEqualTo(String value) {
            addCriterion("bind_phone <=", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneLike(String value) {
            addCriterion("bind_phone like", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneNotLike(String value) {
            addCriterion("bind_phone not like", value, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneIn(List<String> values) {
            addCriterion("bind_phone in", values, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneNotIn(List<String> values) {
            addCriterion("bind_phone not in", values, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneBetween(String value1, String value2) {
            addCriterion("bind_phone between", value1, value2, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andBindPhoneNotBetween(String value1, String value2) {
            addCriterion("bind_phone not between", value1, value2, "bindPhone");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeIsNull() {
            addCriterion("valid_start_time is null");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeIsNotNull() {
            addCriterion("valid_start_time is not null");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeEqualTo(Date value) {
            addCriterion("valid_start_time =", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeNotEqualTo(Date value) {
            addCriterion("valid_start_time <>", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeGreaterThan(Date value) {
            addCriterion("valid_start_time >", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("valid_start_time >=", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeLessThan(Date value) {
            addCriterion("valid_start_time <", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("valid_start_time <=", value, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeIn(List<Date> values) {
            addCriterion("valid_start_time in", values, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeNotIn(List<Date> values) {
            addCriterion("valid_start_time not in", values, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeBetween(Date value1, Date value2) {
            addCriterion("valid_start_time between", value1, value2, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("valid_start_time not between", value1, value2, "validStartTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeIsNull() {
            addCriterion("valid_end_time is null");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeIsNotNull() {
            addCriterion("valid_end_time is not null");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeEqualTo(Date value) {
            addCriterion("valid_end_time =", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeNotEqualTo(Date value) {
            addCriterion("valid_end_time <>", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeGreaterThan(Date value) {
            addCriterion("valid_end_time >", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("valid_end_time >=", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeLessThan(Date value) {
            addCriterion("valid_end_time <", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("valid_end_time <=", value, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeIn(List<Date> values) {
            addCriterion("valid_end_time in", values, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeNotIn(List<Date> values) {
            addCriterion("valid_end_time not in", values, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeBetween(Date value1, Date value2) {
            addCriterion("valid_end_time between", value1, value2, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andValidEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("valid_end_time not between", value1, value2, "validEndTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeIsNull() {
            addCriterion("get_time is null");
            return (Criteria) this;
        }

        public Criteria andGetTimeIsNotNull() {
            addCriterion("get_time is not null");
            return (Criteria) this;
        }

        public Criteria andGetTimeEqualTo(Date value) {
            addCriterion("get_time =", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeNotEqualTo(Date value) {
            addCriterion("get_time <>", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeGreaterThan(Date value) {
            addCriterion("get_time >", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("get_time >=", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeLessThan(Date value) {
            addCriterion("get_time <", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeLessThanOrEqualTo(Date value) {
            addCriterion("get_time <=", value, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeIn(List<Date> values) {
            addCriterion("get_time in", values, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeNotIn(List<Date> values) {
            addCriterion("get_time not in", values, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeBetween(Date value1, Date value2) {
            addCriterion("get_time between", value1, value2, "getTime");
            return (Criteria) this;
        }

        public Criteria andGetTimeNotBetween(Date value1, Date value2) {
            addCriterion("get_time not between", value1, value2, "getTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeIsNull() {
            addCriterion("bind_time is null");
            return (Criteria) this;
        }

        public Criteria andBindTimeIsNotNull() {
            addCriterion("bind_time is not null");
            return (Criteria) this;
        }

        public Criteria andBindTimeEqualTo(Date value) {
            addCriterion("bind_time =", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeNotEqualTo(Date value) {
            addCriterion("bind_time <>", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeGreaterThan(Date value) {
            addCriterion("bind_time >", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("bind_time >=", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeLessThan(Date value) {
            addCriterion("bind_time <", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeLessThanOrEqualTo(Date value) {
            addCriterion("bind_time <=", value, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeIn(List<Date> values) {
            addCriterion("bind_time in", values, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeNotIn(List<Date> values) {
            addCriterion("bind_time not in", values, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeBetween(Date value1, Date value2) {
            addCriterion("bind_time between", value1, value2, "bindTime");
            return (Criteria) this;
        }

        public Criteria andBindTimeNotBetween(Date value1, Date value2) {
            addCriterion("bind_time not between", value1, value2, "bindTime");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNull() {
            addCriterion("order_num is null");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNotNull() {
            addCriterion("order_num is not null");
            return (Criteria) this;
        }

        public Criteria andOrderNumEqualTo(String value) {
            addCriterion("order_num =", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotEqualTo(String value) {
            addCriterion("order_num <>", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThan(String value) {
            addCriterion("order_num >", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThanOrEqualTo(String value) {
            addCriterion("order_num >=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThan(String value) {
            addCriterion("order_num <", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThanOrEqualTo(String value) {
            addCriterion("order_num <=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLike(String value) {
            addCriterion("order_num like", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotLike(String value) {
            addCriterion("order_num not like", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumIn(List<String> values) {
            addCriterion("order_num in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotIn(List<String> values) {
            addCriterion("order_num not in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumBetween(String value1, String value2) {
            addCriterion("order_num between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotBetween(String value1, String value2) {
            addCriterion("order_num not between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagIsNull() {
            addCriterion("send_sms_flag is null");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagIsNotNull() {
            addCriterion("send_sms_flag is not null");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagEqualTo(Integer value) {
            addCriterion("send_sms_flag =", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagNotEqualTo(Integer value) {
            addCriterion("send_sms_flag <>", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagGreaterThan(Integer value) {
            addCriterion("send_sms_flag >", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("send_sms_flag >=", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagLessThan(Integer value) {
            addCriterion("send_sms_flag <", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagLessThanOrEqualTo(Integer value) {
            addCriterion("send_sms_flag <=", value, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagIn(List<Integer> values) {
            addCriterion("send_sms_flag in", values, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagNotIn(List<Integer> values) {
            addCriterion("send_sms_flag not in", values, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagBetween(Integer value1, Integer value2) {
            addCriterion("send_sms_flag between", value1, value2, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendSmsFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("send_sms_flag not between", value1, value2, "sendSmsFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagIsNull() {
            addCriterion("send_app_flag is null");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagIsNotNull() {
            addCriterion("send_app_flag is not null");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagEqualTo(Integer value) {
            addCriterion("send_app_flag =", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagNotEqualTo(Integer value) {
            addCriterion("send_app_flag <>", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagGreaterThan(Integer value) {
            addCriterion("send_app_flag >", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("send_app_flag >=", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagLessThan(Integer value) {
            addCriterion("send_app_flag <", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagLessThanOrEqualTo(Integer value) {
            addCriterion("send_app_flag <=", value, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagIn(List<Integer> values) {
            addCriterion("send_app_flag in", values, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagNotIn(List<Integer> values) {
            addCriterion("send_app_flag not in", values, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagBetween(Integer value1, Integer value2) {
            addCriterion("send_app_flag between", value1, value2, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andSendAppFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("send_app_flag not between", value1, value2, "sendAppFlag");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(String value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(String value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(String value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(String value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(String value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(String value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLike(String value) {
            addCriterion("user_id like", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotLike(String value) {
            addCriterion("user_id not like", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<String> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<String> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(String value1, String value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(String value1, String value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andValidFlagIsNull() {
            addCriterion("valid_flag is null");
            return (Criteria) this;
        }

        public Criteria andValidFlagIsNotNull() {
            addCriterion("valid_flag is not null");
            return (Criteria) this;
        }

        public Criteria andValidFlagEqualTo(Integer value) {
            addCriterion("valid_flag =", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagNotEqualTo(Integer value) {
            addCriterion("valid_flag <>", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagGreaterThan(Integer value) {
            addCriterion("valid_flag >", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("valid_flag >=", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagLessThan(Integer value) {
            addCriterion("valid_flag <", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagLessThanOrEqualTo(Integer value) {
            addCriterion("valid_flag <=", value, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagIn(List<Integer> values) {
            addCriterion("valid_flag in", values, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagNotIn(List<Integer> values) {
            addCriterion("valid_flag not in", values, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagBetween(Integer value1, Integer value2) {
            addCriterion("valid_flag between", value1, value2, "validFlag");
            return (Criteria) this;
        }

        public Criteria andValidFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("valid_flag not between", value1, value2, "validFlag");
            return (Criteria) this;
        }

        public Criteria andCreateStateIsNull() {
            addCriterion("create_state is null");
            return (Criteria) this;
        }

        public Criteria andCreateStateIsNotNull() {
            addCriterion("create_state is not null");
            return (Criteria) this;
        }

        public Criteria andCreateStateEqualTo(Integer value) {
            addCriterion("create_state =", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateNotEqualTo(Integer value) {
            addCriterion("create_state <>", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateGreaterThan(Integer value) {
            addCriterion("create_state >", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("create_state >=", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateLessThan(Integer value) {
            addCriterion("create_state <", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateLessThanOrEqualTo(Integer value) {
            addCriterion("create_state <=", value, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateIn(List<Integer> values) {
            addCriterion("create_state in", values, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateNotIn(List<Integer> values) {
            addCriterion("create_state not in", values, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateBetween(Integer value1, Integer value2) {
            addCriterion("create_state between", value1, value2, "createState");
            return (Criteria) this;
        }

        public Criteria andCreateStateNotBetween(Integer value1, Integer value2) {
            addCriterion("create_state not between", value1, value2, "createState");
            return (Criteria) this;
        }

        public Criteria andDeviceIsNull() {
            addCriterion("device is null");
            return (Criteria) this;
        }

        public Criteria andDeviceIsNotNull() {
            addCriterion("device is not null");
            return (Criteria) this;
        }

        public Criteria andDeviceEqualTo(String value) {
            addCriterion("device =", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceNotEqualTo(String value) {
            addCriterion("device <>", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceGreaterThan(String value) {
            addCriterion("device >", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceGreaterThanOrEqualTo(String value) {
            addCriterion("device >=", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceLessThan(String value) {
            addCriterion("device <", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceLessThanOrEqualTo(String value) {
            addCriterion("device <=", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceLike(String value) {
            addCriterion("device like", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceNotLike(String value) {
            addCriterion("device not like", value, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceIn(List<String> values) {
            addCriterion("device in", values, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceNotIn(List<String> values) {
            addCriterion("device not in", values, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceBetween(String value1, String value2) {
            addCriterion("device between", value1, value2, "device");
            return (Criteria) this;
        }

        public Criteria andDeviceNotBetween(String value1, String value2) {
            addCriterion("device not between", value1, value2, "device");
            return (Criteria) this;
        }

        public Criteria andDevGuidIsNull() {
            addCriterion("dev_guid is null");
            return (Criteria) this;
        }

        public Criteria andDevGuidIsNotNull() {
            addCriterion("dev_guid is not null");
            return (Criteria) this;
        }

        public Criteria andDevGuidEqualTo(String value) {
            addCriterion("dev_guid =", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidNotEqualTo(String value) {
            addCriterion("dev_guid <>", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidGreaterThan(String value) {
            addCriterion("dev_guid >", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidGreaterThanOrEqualTo(String value) {
            addCriterion("dev_guid >=", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidLessThan(String value) {
            addCriterion("dev_guid <", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidLessThanOrEqualTo(String value) {
            addCriterion("dev_guid <=", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidLike(String value) {
            addCriterion("dev_guid like", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidNotLike(String value) {
            addCriterion("dev_guid not like", value, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidIn(List<String> values) {
            addCriterion("dev_guid in", values, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidNotIn(List<String> values) {
            addCriterion("dev_guid not in", values, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidBetween(String value1, String value2) {
            addCriterion("dev_guid between", value1, value2, "devGuid");
            return (Criteria) this;
        }

        public Criteria andDevGuidNotBetween(String value1, String value2) {
            addCriterion("dev_guid not between", value1, value2, "devGuid");
            return (Criteria) this;
        }

        public Criteria andSourceObjIsNull() {
            addCriterion("source_obj is null");
            return (Criteria) this;
        }

        public Criteria andSourceObjIsNotNull() {
            addCriterion("source_obj is not null");
            return (Criteria) this;
        }

        public Criteria andSourceObjEqualTo(String value) {
            addCriterion("source_obj =", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjNotEqualTo(String value) {
            addCriterion("source_obj <>", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjGreaterThan(String value) {
            addCriterion("source_obj >", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjGreaterThanOrEqualTo(String value) {
            addCriterion("source_obj >=", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjLessThan(String value) {
            addCriterion("source_obj <", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjLessThanOrEqualTo(String value) {
            addCriterion("source_obj <=", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjLike(String value) {
            addCriterion("source_obj like", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjNotLike(String value) {
            addCriterion("source_obj not like", value, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjIn(List<String> values) {
            addCriterion("source_obj in", values, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjNotIn(List<String> values) {
            addCriterion("source_obj not in", values, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjBetween(String value1, String value2) {
            addCriterion("source_obj between", value1, value2, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andSourceObjNotBetween(String value1, String value2) {
            addCriterion("source_obj not between", value1, value2, "sourceObj");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIsNull() {
            addCriterion("coupon_type is null");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIsNotNull() {
            addCriterion("coupon_type is not null");
            return (Criteria) this;
        }

        public Criteria andCouponTypeEqualTo(Integer value) {
            addCriterion("coupon_type =", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotEqualTo(Integer value) {
            addCriterion("coupon_type <>", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeGreaterThan(Integer value) {
            addCriterion("coupon_type >", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("coupon_type >=", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeLessThan(Integer value) {
            addCriterion("coupon_type <", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeLessThanOrEqualTo(Integer value) {
            addCriterion("coupon_type <=", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIn(List<Integer> values) {
            addCriterion("coupon_type in", values, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotIn(List<Integer> values) {
            addCriterion("coupon_type not in", values, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeBetween(Integer value1, Integer value2) {
            addCriterion("coupon_type between", value1, value2, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("coupon_type not between", value1, value2, "couponType");
            return (Criteria) this;
        }

        public Criteria andOtherIsNull() {
            addCriterion("other is null");
            return (Criteria) this;
        }

        public Criteria andOtherIsNotNull() {
            addCriterion("other is not null");
            return (Criteria) this;
        }

        public Criteria andOtherEqualTo(String value) {
            addCriterion("other =", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherNotEqualTo(String value) {
            addCriterion("other <>", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherGreaterThan(String value) {
            addCriterion("other >", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherGreaterThanOrEqualTo(String value) {
            addCriterion("other >=", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherLessThan(String value) {
            addCriterion("other <", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherLessThanOrEqualTo(String value) {
            addCriterion("other <=", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherLike(String value) {
            addCriterion("other like", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherNotLike(String value) {
            addCriterion("other not like", value, "other");
            return (Criteria) this;
        }

        public Criteria andOtherIn(List<String> values) {
            addCriterion("other in", values, "other");
            return (Criteria) this;
        }

        public Criteria andOtherNotIn(List<String> values) {
            addCriterion("other not in", values, "other");
            return (Criteria) this;
        }

        public Criteria andOtherBetween(String value1, String value2) {
            addCriterion("other between", value1, value2, "other");
            return (Criteria) this;
        }

        public Criteria andOtherNotBetween(String value1, String value2) {
            addCriterion("other not between", value1, value2, "other");
            return (Criteria) this;
        }

        public Criteria andChannelIsNull() {
            addCriterion("channel is null");
            return (Criteria) this;
        }

        public Criteria andChannelIsNotNull() {
            addCriterion("channel is not null");
            return (Criteria) this;
        }

        public Criteria andChannelEqualTo(Integer value) {
            addCriterion("channel =", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelNotEqualTo(Integer value) {
            addCriterion("channel <>", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelGreaterThan(Integer value) {
            addCriterion("channel >", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelGreaterThanOrEqualTo(Integer value) {
            addCriterion("channel >=", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelLessThan(Integer value) {
            addCriterion("channel <", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelLessThanOrEqualTo(Integer value) {
            addCriterion("channel <=", value, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelIn(List<Integer> values) {
            addCriterion("channel in", values, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelNotIn(List<Integer> values) {
            addCriterion("channel not in", values, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelBetween(Integer value1, Integer value2) {
            addCriterion("channel between", value1, value2, "channel");
            return (Criteria) this;
        }

        public Criteria andChannelNotBetween(Integer value1, Integer value2) {
            addCriterion("channel not between", value1, value2, "channel");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeIsNull() {
            addCriterion("preferential_type is null");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeIsNotNull() {
            addCriterion("preferential_type is not null");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeEqualTo(Integer value) {
            addCriterion("preferential_type =", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeNotEqualTo(Integer value) {
            addCriterion("preferential_type <>", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeGreaterThan(Integer value) {
            addCriterion("preferential_type >", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("preferential_type >=", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeLessThan(Integer value) {
            addCriterion("preferential_type <", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeLessThanOrEqualTo(Integer value) {
            addCriterion("preferential_type <=", value, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeIn(List<Integer> values) {
            addCriterion("preferential_type in", values, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeNotIn(List<Integer> values) {
            addCriterion("preferential_type not in", values, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeBetween(Integer value1, Integer value2) {
            addCriterion("preferential_type between", value1, value2, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andPreferentialTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("preferential_type not between", value1, value2, "preferentialType");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyIsNull() {
            addCriterion("coupon_money is null");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyIsNotNull() {
            addCriterion("coupon_money is not null");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyEqualTo(BigDecimal value) {
            addCriterion("coupon_money =", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyNotEqualTo(BigDecimal value) {
            addCriterion("coupon_money <>", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyGreaterThan(BigDecimal value) {
            addCriterion("coupon_money >", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("coupon_money >=", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyLessThan(BigDecimal value) {
            addCriterion("coupon_money <", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("coupon_money <=", value, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyIn(List<BigDecimal> values) {
            addCriterion("coupon_money in", values, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyNotIn(List<BigDecimal> values) {
            addCriterion("coupon_money not in", values, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("coupon_money between", value1, value2, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("coupon_money not between", value1, value2, "couponMoney");
            return (Criteria) this;
        }

        public Criteria andCouponTitleIsNull() {
            addCriterion("coupon_title is null");
            return (Criteria) this;
        }

        public Criteria andCouponTitleIsNotNull() {
            addCriterion("coupon_title is not null");
            return (Criteria) this;
        }

        public Criteria andCouponTitleEqualTo(String value) {
            addCriterion("coupon_title =", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleNotEqualTo(String value) {
            addCriterion("coupon_title <>", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleGreaterThan(String value) {
            addCriterion("coupon_title >", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_title >=", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleLessThan(String value) {
            addCriterion("coupon_title <", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleLessThanOrEqualTo(String value) {
            addCriterion("coupon_title <=", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleLike(String value) {
            addCriterion("coupon_title like", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleNotLike(String value) {
            addCriterion("coupon_title not like", value, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleIn(List<String> values) {
            addCriterion("coupon_title in", values, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleNotIn(List<String> values) {
            addCriterion("coupon_title not in", values, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleBetween(String value1, String value2) {
            addCriterion("coupon_title between", value1, value2, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponTitleNotBetween(String value1, String value2) {
            addCriterion("coupon_title not between", value1, value2, "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIsNull() {
            addCriterion("coupon_rule is null");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIsNotNull() {
            addCriterion("coupon_rule is not null");
            return (Criteria) this;
        }

        public Criteria andCouponRuleEqualTo(String value) {
            addCriterion("coupon_rule =", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotEqualTo(String value) {
            addCriterion("coupon_rule <>", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleGreaterThan(String value) {
            addCriterion("coupon_rule >", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_rule >=", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLessThan(String value) {
            addCriterion("coupon_rule <", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLessThanOrEqualTo(String value) {
            addCriterion("coupon_rule <=", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLike(String value) {
            addCriterion("coupon_rule like", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotLike(String value) {
            addCriterion("coupon_rule not like", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIn(List<String> values) {
            addCriterion("coupon_rule in", values, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotIn(List<String> values) {
            addCriterion("coupon_rule not in", values, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleBetween(String value1, String value2) {
            addCriterion("coupon_rule between", value1, value2, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotBetween(String value1, String value2) {
            addCriterion("coupon_rule not between", value1, value2, "couponRule");
            return (Criteria) this;
        }

        public Criteria andRuleTypeIsNull() {
            addCriterion("rule_type is null");
            return (Criteria) this;
        }

        public Criteria andRuleTypeIsNotNull() {
            addCriterion("rule_type is not null");
            return (Criteria) this;
        }

        public Criteria andRuleTypeEqualTo(Integer value) {
            addCriterion("rule_type =", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeNotEqualTo(Integer value) {
            addCriterion("rule_type <>", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeGreaterThan(Integer value) {
            addCriterion("rule_type >", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("rule_type >=", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeLessThan(Integer value) {
            addCriterion("rule_type <", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeLessThanOrEqualTo(Integer value) {
            addCriterion("rule_type <=", value, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeIn(List<Integer> values) {
            addCriterion("rule_type in", values, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeNotIn(List<Integer> values) {
            addCriterion("rule_type not in", values, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeBetween(Integer value1, Integer value2) {
            addCriterion("rule_type between", value1, value2, "ruleType");
            return (Criteria) this;
        }

        public Criteria andRuleTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("rule_type not between", value1, value2, "ruleType");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceIsNull() {
            addCriterion("max_preferential_price is null");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceIsNotNull() {
            addCriterion("max_preferential_price is not null");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceEqualTo(BigDecimal value) {
            addCriterion("max_preferential_price =", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceNotEqualTo(BigDecimal value) {
            addCriterion("max_preferential_price <>", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceGreaterThan(BigDecimal value) {
            addCriterion("max_preferential_price >", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("max_preferential_price >=", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceLessThan(BigDecimal value) {
            addCriterion("max_preferential_price <", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("max_preferential_price <=", value, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceIn(List<BigDecimal> values) {
            addCriterion("max_preferential_price in", values, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceNotIn(List<BigDecimal> values) {
            addCriterion("max_preferential_price not in", values, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("max_preferential_price between", value1, value2, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andMaxPreferentialPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("max_preferential_price not between", value1, value2, "maxPreferentialPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIsNull() {
            addCriterion("discount_price is null");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIsNotNull() {
            addCriterion("discount_price is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceEqualTo(BigDecimal value) {
            addCriterion("discount_price =", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotEqualTo(BigDecimal value) {
            addCriterion("discount_price <>", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceGreaterThan(BigDecimal value) {
            addCriterion("discount_price >", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("discount_price >=", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceLessThan(BigDecimal value) {
            addCriterion("discount_price <", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("discount_price <=", value, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceIn(List<BigDecimal> values) {
            addCriterion("discount_price in", values, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotIn(List<BigDecimal> values) {
            addCriterion("discount_price not in", values, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount_price between", value1, value2, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andDiscountPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("discount_price not between", value1, value2, "discountPrice");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeIsNull() {
            addCriterion("valid_time_type is null");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeIsNotNull() {
            addCriterion("valid_time_type is not null");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeEqualTo(Integer value) {
            addCriterion("valid_time_type =", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeNotEqualTo(Integer value) {
            addCriterion("valid_time_type <>", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeGreaterThan(Integer value) {
            addCriterion("valid_time_type >", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("valid_time_type >=", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeLessThan(Integer value) {
            addCriterion("valid_time_type <", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeLessThanOrEqualTo(Integer value) {
            addCriterion("valid_time_type <=", value, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeIn(List<Integer> values) {
            addCriterion("valid_time_type in", values, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeNotIn(List<Integer> values) {
            addCriterion("valid_time_type not in", values, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeBetween(Integer value1, Integer value2) {
            addCriterion("valid_time_type between", value1, value2, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidTimeTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("valid_time_type not between", value1, value2, "validTimeType");
            return (Criteria) this;
        }

        public Criteria andValidDaysIsNull() {
            addCriterion("valid_days is null");
            return (Criteria) this;
        }

        public Criteria andValidDaysIsNotNull() {
            addCriterion("valid_days is not null");
            return (Criteria) this;
        }

        public Criteria andValidDaysEqualTo(Integer value) {
            addCriterion("valid_days =", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysNotEqualTo(Integer value) {
            addCriterion("valid_days <>", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysGreaterThan(Integer value) {
            addCriterion("valid_days >", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysGreaterThanOrEqualTo(Integer value) {
            addCriterion("valid_days >=", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysLessThan(Integer value) {
            addCriterion("valid_days <", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysLessThanOrEqualTo(Integer value) {
            addCriterion("valid_days <=", value, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysIn(List<Integer> values) {
            addCriterion("valid_days in", values, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysNotIn(List<Integer> values) {
            addCriterion("valid_days not in", values, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysBetween(Integer value1, Integer value2) {
            addCriterion("valid_days between", value1, value2, "validDays");
            return (Criteria) this;
        }

        public Criteria andValidDaysNotBetween(Integer value1, Integer value2) {
            addCriterion("valid_days not between", value1, value2, "validDays");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyIsNull() {
            addCriterion("real_discount_money is null");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyIsNotNull() {
            addCriterion("real_discount_money is not null");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyEqualTo(BigDecimal value) {
            addCriterion("real_discount_money =", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyNotEqualTo(BigDecimal value) {
            addCriterion("real_discount_money <>", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyGreaterThan(BigDecimal value) {
            addCriterion("real_discount_money >", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("real_discount_money >=", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyLessThan(BigDecimal value) {
            addCriterion("real_discount_money <", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("real_discount_money <=", value, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyIn(List<BigDecimal> values) {
            addCriterion("real_discount_money in", values, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyNotIn(List<BigDecimal> values) {
            addCriterion("real_discount_money not in", values, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("real_discount_money between", value1, value2, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andRealDiscountMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("real_discount_money not between", value1, value2, "realDiscountMoney");
            return (Criteria) this;
        }

        public Criteria andUrlUseIsNull() {
            addCriterion("url_use is null");
            return (Criteria) this;
        }

        public Criteria andUrlUseIsNotNull() {
            addCriterion("url_use is not null");
            return (Criteria) this;
        }

        public Criteria andUrlUseEqualTo(String value) {
            addCriterion("url_use =", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseNotEqualTo(String value) {
            addCriterion("url_use <>", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseGreaterThan(String value) {
            addCriterion("url_use >", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseGreaterThanOrEqualTo(String value) {
            addCriterion("url_use >=", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseLessThan(String value) {
            addCriterion("url_use <", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseLessThanOrEqualTo(String value) {
            addCriterion("url_use <=", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseLike(String value) {
            addCriterion("url_use like", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseNotLike(String value) {
            addCriterion("url_use not like", value, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseIn(List<String> values) {
            addCriterion("url_use in", values, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseNotIn(List<String> values) {
            addCriterion("url_use not in", values, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseBetween(String value1, String value2) {
            addCriterion("url_use between", value1, value2, "urlUse");
            return (Criteria) this;
        }

        public Criteria andUrlUseNotBetween(String value1, String value2) {
            addCriterion("url_use not between", value1, value2, "urlUse");
            return (Criteria) this;
        }

        public Criteria andMobileEnIsNull() {
            addCriterion("mobile_en is null");
            return (Criteria) this;
        }

        public Criteria andMobileEnIsNotNull() {
            addCriterion("mobile_en is not null");
            return (Criteria) this;
        }

        public Criteria andMobileEnEqualTo(String value) {
            addCriterion("mobile_en =", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnNotEqualTo(String value) {
            addCriterion("mobile_en <>", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnGreaterThan(String value) {
            addCriterion("mobile_en >", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnGreaterThanOrEqualTo(String value) {
            addCriterion("mobile_en >=", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnLessThan(String value) {
            addCriterion("mobile_en <", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnLessThanOrEqualTo(String value) {
            addCriterion("mobile_en <=", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnLike(String value) {
            addCriterion("mobile_en like", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnNotLike(String value) {
            addCriterion("mobile_en not like", value, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnIn(List<String> values) {
            addCriterion("mobile_en in", values, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnNotIn(List<String> values) {
            addCriterion("mobile_en not in", values, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnBetween(String value1, String value2) {
            addCriterion("mobile_en between", value1, value2, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMobileEnNotBetween(String value1, String value2) {
            addCriterion("mobile_en not between", value1, value2, "mobileEn");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagIsNull() {
            addCriterion("register_user_flag is null");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagIsNotNull() {
            addCriterion("register_user_flag is not null");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagEqualTo(Integer value) {
            addCriterion("register_user_flag =", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagNotEqualTo(Integer value) {
            addCriterion("register_user_flag <>", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagGreaterThan(Integer value) {
            addCriterion("register_user_flag >", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("register_user_flag >=", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagLessThan(Integer value) {
            addCriterion("register_user_flag <", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagLessThanOrEqualTo(Integer value) {
            addCriterion("register_user_flag <=", value, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagIn(List<Integer> values) {
            addCriterion("register_user_flag in", values, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagNotIn(List<Integer> values) {
            addCriterion("register_user_flag not in", values, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagBetween(Integer value1, Integer value2) {
            addCriterion("register_user_flag between", value1, value2, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andRegisterUserFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("register_user_flag not between", value1, value2, "registerUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagIsNull() {
            addCriterion("bussiness_user_flag is null");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagIsNotNull() {
            addCriterion("bussiness_user_flag is not null");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagEqualTo(Integer value) {
            addCriterion("bussiness_user_flag =", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagNotEqualTo(Integer value) {
            addCriterion("bussiness_user_flag <>", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagGreaterThan(Integer value) {
            addCriterion("bussiness_user_flag >", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("bussiness_user_flag >=", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagLessThan(Integer value) {
            addCriterion("bussiness_user_flag <", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagLessThanOrEqualTo(Integer value) {
            addCriterion("bussiness_user_flag <=", value, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagIn(List<Integer> values) {
            addCriterion("bussiness_user_flag in", values, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagNotIn(List<Integer> values) {
            addCriterion("bussiness_user_flag not in", values, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagBetween(Integer value1, Integer value2) {
            addCriterion("bussiness_user_flag between", value1, value2, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andBussinessUserFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("bussiness_user_flag not between", value1, value2, "bussinessUserFlag");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleIsNull() {
            addCriterion("is_new_rule is null");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleIsNotNull() {
            addCriterion("is_new_rule is not null");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleEqualTo(Integer value) {
            addCriterion("is_new_rule =", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleNotEqualTo(Integer value) {
            addCriterion("is_new_rule <>", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleGreaterThan(Integer value) {
            addCriterion("is_new_rule >", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_new_rule >=", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleLessThan(Integer value) {
            addCriterion("is_new_rule <", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleLessThanOrEqualTo(Integer value) {
            addCriterion("is_new_rule <=", value, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleIn(List<Integer> values) {
            addCriterion("is_new_rule in", values, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleNotIn(List<Integer> values) {
            addCriterion("is_new_rule not in", values, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleBetween(Integer value1, Integer value2) {
            addCriterion("is_new_rule between", value1, value2, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andIsNewRuleNotBetween(Integer value1, Integer value2) {
            addCriterion("is_new_rule not between", value1, value2, "isNewRule");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagIsNull() {
            addCriterion("limit_use_flag is null");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagIsNotNull() {
            addCriterion("limit_use_flag is not null");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagEqualTo(Integer value) {
            addCriterion("limit_use_flag =", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagNotEqualTo(Integer value) {
            addCriterion("limit_use_flag <>", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagGreaterThan(Integer value) {
            addCriterion("limit_use_flag >", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("limit_use_flag >=", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagLessThan(Integer value) {
            addCriterion("limit_use_flag <", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagLessThanOrEqualTo(Integer value) {
            addCriterion("limit_use_flag <=", value, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagIn(List<Integer> values) {
            addCriterion("limit_use_flag in", values, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagNotIn(List<Integer> values) {
            addCriterion("limit_use_flag not in", values, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagBetween(Integer value1, Integer value2) {
            addCriterion("limit_use_flag between", value1, value2, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andLimitUseFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("limit_use_flag not between", value1, value2, "limitUseFlag");
            return (Criteria) this;
        }

        public Criteria andRatioIsNull() {
            addCriterion("ratio is null");
            return (Criteria) this;
        }

        public Criteria andRatioIsNotNull() {
            addCriterion("ratio is not null");
            return (Criteria) this;
        }

        public Criteria andRatioEqualTo(Integer value) {
            addCriterion("ratio =", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioNotEqualTo(Integer value) {
            addCriterion("ratio <>", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioGreaterThan(Integer value) {
            addCriterion("ratio >", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioGreaterThanOrEqualTo(Integer value) {
            addCriterion("ratio >=", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioLessThan(Integer value) {
            addCriterion("ratio <", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioLessThanOrEqualTo(Integer value) {
            addCriterion("ratio <=", value, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioIn(List<Integer> values) {
            addCriterion("ratio in", values, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioNotIn(List<Integer> values) {
            addCriterion("ratio not in", values, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioBetween(Integer value1, Integer value2) {
            addCriterion("ratio between", value1, value2, "ratio");
            return (Criteria) this;
        }

        public Criteria andRatioNotBetween(Integer value1, Integer value2) {
            addCriterion("ratio not between", value1, value2, "ratio");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeIsNull() {
            addCriterion("smswarn_time is null");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeIsNotNull() {
            addCriterion("smswarn_time is not null");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeEqualTo(Date value) {
            addCriterion("smswarn_time =", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeNotEqualTo(Date value) {
            addCriterion("smswarn_time <>", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeGreaterThan(Date value) {
            addCriterion("smswarn_time >", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("smswarn_time >=", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeLessThan(Date value) {
            addCriterion("smswarn_time <", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeLessThanOrEqualTo(Date value) {
            addCriterion("smswarn_time <=", value, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeIn(List<Date> values) {
            addCriterion("smswarn_time in", values, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeNotIn(List<Date> values) {
            addCriterion("smswarn_time not in", values, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeBetween(Date value1, Date value2) {
            addCriterion("smswarn_time between", value1, value2, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andSmswarnTimeNotBetween(Date value1, Date value2) {
            addCriterion("smswarn_time not between", value1, value2, "smswarnTime");
            return (Criteria) this;
        }

        public Criteria andMoreChannelIsNull() {
            addCriterion("more_channel is null");
            return (Criteria) this;
        }

        public Criteria andMoreChannelIsNotNull() {
            addCriterion("more_channel is not null");
            return (Criteria) this;
        }

        public Criteria andMoreChannelEqualTo(String value) {
            addCriterion("more_channel =", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelNotEqualTo(String value) {
            addCriterion("more_channel <>", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelGreaterThan(String value) {
            addCriterion("more_channel >", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelGreaterThanOrEqualTo(String value) {
            addCriterion("more_channel >=", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelLessThan(String value) {
            addCriterion("more_channel <", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelLessThanOrEqualTo(String value) {
            addCriterion("more_channel <=", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelLike(String value) {
            addCriterion("more_channel like", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelNotLike(String value) {
            addCriterion("more_channel not like", value, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelIn(List<String> values) {
            addCriterion("more_channel in", values, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelNotIn(List<String> values) {
            addCriterion("more_channel not in", values, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelBetween(String value1, String value2) {
            addCriterion("more_channel between", value1, value2, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andMoreChannelNotBetween(String value1, String value2) {
            addCriterion("more_channel not between", value1, value2, "moreChannel");
            return (Criteria) this;
        }

        public Criteria andActivityKeyIsNull() {
            addCriterion("activity_key is null");
            return (Criteria) this;
        }

        public Criteria andActivityKeyIsNotNull() {
            addCriterion("activity_key is not null");
            return (Criteria) this;
        }

        public Criteria andActivityKeyEqualTo(String value) {
            addCriterion("activity_key =", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyNotEqualTo(String value) {
            addCriterion("activity_key <>", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyGreaterThan(String value) {
            addCriterion("activity_key >", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyGreaterThanOrEqualTo(String value) {
            addCriterion("activity_key >=", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyLessThan(String value) {
            addCriterion("activity_key <", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyLessThanOrEqualTo(String value) {
            addCriterion("activity_key <=", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyLike(String value) {
            addCriterion("activity_key like", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyNotLike(String value) {
            addCriterion("activity_key not like", value, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyIn(List<String> values) {
            addCriterion("activity_key in", values, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyNotIn(List<String> values) {
            addCriterion("activity_key not in", values, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyBetween(String value1, String value2) {
            addCriterion("activity_key between", value1, value2, "activityKey");
            return (Criteria) this;
        }

        public Criteria andActivityKeyNotBetween(String value1, String value2) {
            addCriterion("activity_key not between", value1, value2, "activityKey");
            return (Criteria) this;
        }

        public Criteria andCouponFlagIsNull() {
            addCriterion("coupon_flag is null");
            return (Criteria) this;
        }

        public Criteria andCouponFlagIsNotNull() {
            addCriterion("coupon_flag is not null");
            return (Criteria) this;
        }

        public Criteria andCouponFlagEqualTo(Integer value) {
            addCriterion("coupon_flag =", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagNotEqualTo(Integer value) {
            addCriterion("coupon_flag <>", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagGreaterThan(Integer value) {
            addCriterion("coupon_flag >", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("coupon_flag >=", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagLessThan(Integer value) {
            addCriterion("coupon_flag <", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagLessThanOrEqualTo(Integer value) {
            addCriterion("coupon_flag <=", value, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagIn(List<Integer> values) {
            addCriterion("coupon_flag in", values, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagNotIn(List<Integer> values) {
            addCriterion("coupon_flag not in", values, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagBetween(Integer value1, Integer value2) {
            addCriterion("coupon_flag between", value1, value2, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCouponFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("coupon_flag not between", value1, value2, "couponFlag");
            return (Criteria) this;
        }

        public Criteria andCodeNoLikeInsensitive(String value) {
            addCriterion("upper(code_no) like", value.toUpperCase(), "codeNo");
            return (Criteria) this;
        }

        public Criteria andBatchNoLikeInsensitive(String value) {
            addCriterion("upper(batch_no) like", value.toUpperCase(), "batchNo");
            return (Criteria) this;
        }

        public Criteria andBatchExtendNoLikeInsensitive(String value) {
            addCriterion("upper(batch_extend_no) like", value.toUpperCase(), "batchExtendNo");
            return (Criteria) this;
        }

        public Criteria andBindPhoneLikeInsensitive(String value) {
            addCriterion("upper(bind_phone) like", value.toUpperCase(), "bindPhone");
            return (Criteria) this;
        }

        public Criteria andOrderNumLikeInsensitive(String value) {
            addCriterion("upper(order_num) like", value.toUpperCase(), "orderNum");
            return (Criteria) this;
        }

        public Criteria andUserIdLikeInsensitive(String value) {
            addCriterion("upper(user_id) like", value.toUpperCase(), "userId");
            return (Criteria) this;
        }

        public Criteria andDeviceLikeInsensitive(String value) {
            addCriterion("upper(device) like", value.toUpperCase(), "device");
            return (Criteria) this;
        }

        public Criteria andDevGuidLikeInsensitive(String value) {
            addCriterion("upper(dev_guid) like", value.toUpperCase(), "devGuid");
            return (Criteria) this;
        }

        public Criteria andSourceObjLikeInsensitive(String value) {
            addCriterion("upper(source_obj) like", value.toUpperCase(), "sourceObj");
            return (Criteria) this;
        }

        public Criteria andOtherLikeInsensitive(String value) {
            addCriterion("upper(other) like", value.toUpperCase(), "other");
            return (Criteria) this;
        }

        public Criteria andCouponTitleLikeInsensitive(String value) {
            addCriterion("upper(coupon_title) like", value.toUpperCase(), "couponTitle");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLikeInsensitive(String value) {
            addCriterion("upper(coupon_rule) like", value.toUpperCase(), "couponRule");
            return (Criteria) this;
        }

        public Criteria andUrlUseLikeInsensitive(String value) {
            addCriterion("upper(url_use) like", value.toUpperCase(), "urlUse");
            return (Criteria) this;
        }

        public Criteria andMobileEnLikeInsensitive(String value) {
            addCriterion("upper(mobile_en) like", value.toUpperCase(), "mobileEn");
            return (Criteria) this;
        }

        public Criteria andMoreChannelLikeInsensitive(String value) {
            addCriterion("upper(more_channel) like", value.toUpperCase(), "moreChannel");
            return (Criteria) this;
        }

        public Criteria andActivityKeyLikeInsensitive(String value) {
            addCriterion("upper(activity_key) like", value.toUpperCase(), "activityKey");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}